Field of the Invention
The invention described herein generally relates to updating data in databases, and in particular, employing data field-specific thread tasking for database operations.
Description of the Related Art
Devices such as notebook computers, handheld computers and data enabled cellular telephones permit data synchronization with a different computing device, for example a server computer. Data synchronization may refer to the harmonization of data between two data sources such that the data contained in each data source can be reconciled notwithstanding changes to the data applied in either or both of the data sources. During synchronization, a client device can retrieve data updates since a last synchronization from a local data store and provides those updates to a host device. The host device applies the updates to the host data store and provides updates since the last synchronization from the host data store to the client device.
The client, upon receipt of the host updates, iterates through each update applying the same to the local data store. Once all updates have been applied locally, the client device can provide updated mapping information to the host device in order to facilitate subsequent synchronizations. As such, the serial nature of client side updates can render synchronization susceptible to failure conditions and slow responsiveness. The processing in the client device can be slow compared to processing in the server and the network link further can inhibit the speed of synchronization. Moreover, in as much as the client device must wait for the completion of the update process in the local data store before forwarding an indication of completion to the host device, substantial delays can be incurred where the update process is slow due to the nature of the client device. Furthermore, such synchronization fails to account for the reality of traffic transfer with the bulk of the update traffic in a synchronization process stemming from the host device rather than the client device.
For example, managing risks associated with real estate ownership, particularly residential real estate ownership, requires data systems that can process concurrent changes in data from a plurality of data sources in a timely manner. Condominium and co-op owners face unpredictable and potentially unlimited liability for unit maintenance fees. Maintenance fees and common charges are considerable monthly expenses, and can rise steeply and without warning. Unit owners are liable for the full amount of fees owed upon demand and payment cannot be deferred (as it could at the owner's discretion for a single-family home). Units have limited liquidity and cannot be easily sold to avoid increased maintenance obligations. Maintenance costs have a direct impact on a unit's market value. Extreme maintenance fee increases can harm unit owners in more ways than the immediate financial stress of increased monthly outlays. Higher maintenance fees may also depreciate a unit's value and decrease salability of high-maintenance units, further restricting one's ability to avoid increased costs.
All residential and commercial property owners face uncertain future property tax obligations. Strained municipal finances and spiraling property values in certain urban areas (relative to recession-era assessments) can result in substantial increases to property tax assessments and similar obligations. Owners have little visibility into the timing or magnitude of changes in tax assessments that can materially impact the economics of property ownership. Buildings, communities and tax authorities typically use a fixed annual convention to determine budgeting and rate levels. Most often, in the case of condominiums and cooperatives, a calendar year serves as the basis for budgeting and billing for maintenance fees and common charges. Additionally, certain non-recurring or exceptional expenses and obligations may arise outside of the typical reporting and payment cycles (assessments, levies, etc.). For example, a condominium management company may face an unforeseen maintenance obligation (elevator repair, roof replacement, storm damage remediation, etc.) that may exhaust available reserve funds on hand, and that cannot be deferred into a future reporting period and funded via a typical annual maintenance rate increase.
Ongoing maintenance, fee and tax expenses may generally rise gradually and thus not cause tremendous financial difficulty for unit owners. Unit owners might not want to diversify this gradual inflation-type risk, unless they are on restricted incomes or are otherwise so inclined. However, every unit owner is at risk of sharp increases from truly unknown risks that can imperil personal finances and housing unit value. For example, an assessment to pay for a major building renovation or repair costs for a buckling façade. Building insurance may cover some reconstruction costs, but substantial fee increases would still be expected, not least because of exhausted reserves and rising building insurance premiums.
Concurrent changes in information from a plurality of information sources are critical in determining fluctuating costs and, in particular, increases in maintenance, taxes, and other real estate property-related expenses. Thread synchronization mechanisms can be used to ensure that two or more concurrent processes or threads do not simultaneously execute a critical section (e.g., task to access a shared resource) to a shared resource at the same time such as a shared memory in a database. When one thread starts executing the critical section, other threads should wait until the first thread finishes. Although existing techniques can be used as a means of ensuring transaction synchronicity when making transaction processing concurrent (interleaving transactions), such mechanisms require tying up more time and other resources than may be required (e.g., inefficient use of mutual exclusion devices that cause deadlocks, starvation, and the like). As such, there is a need for an alternative synchronization mechanism to support constant data fluctuations.